package com.hengpeng.itfin.service;

import java.util.List;

import com.hengpeng.itfinbase.persist.DrawFile;
import com.hengpeng.itfinbase.persist.DrawFile.DealState;
import com.hengpeng.itfinbase.persist.PaymentProvider;

/**
 * <pre>
 * 用户提款文件服务接口
 * </pre>
 * @author shanguogang
 * @version 1.0, 2015-8-12
 */
public interface DrawFileService
{
	/**
	 * <pre>
	 * 通过文件上传状态获取上传文件列表
	 * </pre>
	 * @param state 文件上传状态
	 * @return 上传文件列表
	 */
	public List<DrawFile> listByState(DealState state);

	/**
	 * 创建提现文件
	 */
	public void requireNeverCreateDrawFile();

	/**
	 * 解析提现结果文件
	 */
	public void requireNeverDealDrawFile();

	/**
	 * 下载提现结果文件
	 */
	public void requireNeverQueryDrawFile();

	/**
	 * 上传提现文件
	 */
	public void requireNeverUploadDrawFile();

	/**
	 * 创建提现文件
	 * @param provider 支付提供商配置信息
	 */
	public void requireNewCreateDrawFile(PaymentProvider provider);

	/**
	 * 解析提现结果文件
	 * @param file 提现文件记录
	 */
	public void requireNewDealDrawFile(DrawFile file);

	/**
	 * 下载提现结果文件
	 * @param file 提现文件记录
	 */
	public void requireNewQueryDrawFile(DrawFile file);

	/**
	 * 上传提现文件
	 * @param file 提现文件记录
	 */
	public void requireNewUploadDrawFile(DrawFile file);
}
